<?php 
Class ClientepersonasController extends AppController
{
	
	/**
	 * Retorna las personas autorizadas/encargadas de un cliente.
	 * @return array
	 * @param $iIdCliente Object
	 * @param $iTipo Object
	 */
	function getPersona($iIdCliente,$iTipo){
		
		//obtengo las personas de ese cliente y de ese tipo
		$aConditions = array('encargado'=>"$iTipo",'clientes_id'=>"$iIdCliente");
		$aPersonasTmp = $this->Clientepersona->findAll($aConditions);
		foreach($aPersonasTmp as $aRelacion){$aPersonas[] = $aRelacion['Persona'];}

	}
	
	function changeResponsable($idCliente)
	{
		//me fijo si existe algun responsable del ese cliente, y en caso de haberlo lo elimino
		$condicion = array ('clientes_id' => $idCliente, 'encargado' => '1');
		$relacion = $this->Clientepersona->findAll($condicion,null, null, null, 1, 1);
		if(!empty($reg))
		{	
			//asigno los valores para borrarlo
			$idRelacion = $relacion['Clientepersona']['id'];
			//se borra la relacion
			$this->Clientepersona->del($idRelacion);
		}
		//se agrega la nueva relacion con el responsable nuevo
		if(!empty($this->data['Persona']['dni']))//si el campo dni esta seteado intenta guardar o modificar
		{
			if($this->Clientepersona->Persona->save($this->data))//intenta guardar la persona
			{
				//si el dni no existe agrega la persona y guardo la variable de la persona insertada
				$idPersona = $this->Clientepersona->Persona->getLastInsertId();
			}
			else //si el dni existe edito la persona
			{
				//obtengo el id de la persona por el dni
				$dniPersona = $this->data['Persona']['dni'];
				$idPersona = $this->requestAction("personas/getIdOfDni/$dniPersona");
			}
			//guardo el id del cliente insertado para guardar en la tabla ClientePersona
			$this->data['Clientepersona']['clientes_id'] = $idCliente;
			//coloco la asociacion de la persona para relacionarla con el cliente
			$this->data['Clientepersona']['personas_id'] =$idPersona;
			//se guarda en la tabla Clientepersona la asociacion correspondiente
			$this->Clientepersona->save($this->data);
		}	
// 		echo '<pre>';
// 		print_r($relacion);
// 		echo '</pre>';
	}

	function setearVariables()
	{
		//seteamos las variables de error para ser mostradas en caso de no poder
		//guardar los datos
		
		//Mensaje de status q se muestra arriba de los datos.
		$this->set('statusPersona', 'Ingrese los datos de Persona');
				
		$this->set('errorNombrePersona', 'Formato del nombre incorrecto.');
		$this->set('errorApellidoPersona', 'Formato del apellido incorrecto.');
		$this->set('errorDniPersona', 'Formato del dni incorrecto.');
	}
	
	function setResponsable($idCliente,$idPersona)
	{
		//me fijo si existe algun responsable del ese cliente, y en caso de haberlo lo elimino
		$condicion = array ('clientes_id' => $idCliente, 'encargado' => '1');
		$relacion = $this->Clientepersona->findAll($condicion,null, null, null, 1, 1);
		if(!empty($reg))
		{	
			//asigno los valores para borrarlo
			$idRelacion = $relacion['Clientepersona']['id'];
			//se borra la relacion
			$this->Clientepersona->del($idRelacion);
		}
		//guardo el id del cliente insertado para guardar en la tabla ClientePersona
		$this->data['Clientepersona']['clientes_id'] = $idCliente;
		//coloco la asociacion de la persona para relacionarla con el cliente
		$this->data['Clientepersona']['personas_id'] = $idPersona;
		//se guarda en la tabla Clientepersona la asociacion correspondiente
		$this->data['Clientepersona']['encargado'] = '1';
		$this->Clientepersona->save($this->data);
	}
	
	//  -- funciones de los autorizados  --
	
	//borra la relacion de autorizado con el cliente 
	function deleteAutorizado($idCliente,$idPersona)
	{
		//identifico el registro con el cliente y la persona indicada
		$condicion = array (
		'clientes_id' => $idCliente,
		'personas_id' => $idPersona
		);
		$relacion = $this->Clientepersona->find($condicion);
		//borra la relacion
		if(!empty($relacion))
		{	
			//asigno los valores para borrarlo
			$idRelacion = $relacion['Clientepersona']['id'];
			//se borra la relacion
			$this->Clientepersona->del($idRelacion);
		}
		//$this->flash('El Autorizado ha sido eliminado',"/clientes/modify/$idCliente");
 		$this->set('status','El Autorizado ha sido eliminado');
	}
	
	function addAutorizado($idCliente,$idPersona,$iTipo=0){
		//me fijo si existe algun responsable de ese cliente lo seteo
		$condicion = array 
		(
			'clientes_id' => $idCliente, 
			'personas_id' => $idPersona,
			'encargado' => $iTipo
		);
		
		$relacion = $this->Clientepersona->find($condicion);//,null, null, 0);
		if(empty($relacion)){
			$insert_query = "insert into clientepersonas (`personas_id`,`clientes_id`,`encargado`) values ($idPersona,$idCliente,$iTipo)";
			$this->Clientepersona->execute($insert_query);
		}	
	}
	
}
?>

